Methods, Systems, and Products for Graphing Data

ABSTRACT

Methods, systems, and products are disclosed for graphing data. A layout is retrieved that comprises locations for vertices. A proximity location is generated for each vertex. Each vertex&#39;s location from the layout is merged with each vertex&#39;s proximity location. A cost function associated with the layout is minimized.

COPYRIGHT NOTIFICATION

A portion of the disclosure of this patent document and its attachmentscontain material which is subject to copyright protection. The copyrightowner has no objection to the facsimile reproduction by anyone of thepatent document or the patent disclosure, as it appears in the Patentand Trademark Office patent files or records, but otherwise reserves allcopyrights whatsoever.

BACKGROUND

Exemplary embodiments generally relate to electrical computers and, moreparticularly, to graphing data.

Graphing is important in mathematics and in computer science. Graphs areoften used to visually depict relationships between data. A graph joinsor connects a set of objects (e.g. “vertices” or “nodes”) with lines oredges. There may be many types of graphs, and graph theory has evolvedas a disciplinary study of graphs and mathematical structures that modelpairwise relations between objects.

The spring-electrical model, for example, is widely used for drawinggraphs. The spring-electrical model is easy to implement and, whencombined with the known multilevel approach and suitable data structures(e.g., quad-tree) to approximate long range repulsive forces, isefficient and generally effective for large graphs. Thespring-electrical model, however, suffers from “warping” effects. Whenthe spring-electrical model graphs vertices that are far away from acenter of a layout, those vertices tend to be closer to each other. Thespring-electrical model may also graph branches in a tree-like graphthat tend to cling together. FIG. 1, for example, is a schematic thatillustrates the warping problem. FIG. 1 illustrates a graphical outputthat applies a multilevel spring-electrical algorithm with a standardforce model. One of ordinary skill in the art recognizes that the globalstructure of the graph is perhaps adequately captured. Locally, though,some vertices are too close to each other. For example, the vertices atthe tip of a branch are much closer to each other than the verticesnearer a middle area. The tips of the branches may cling to each other,due to the strong long range repulsive force from far away vertices.These warping effects are particularly pronounced for large graphs, andwarping effects may degrade the clarity of a drawing (particularly localdetails).

The stress model is another popular method of drawing a graph. Thestress model may be based on realizing given distances between vertices.A cost function may be determined that is a difference between thephysical distance of vertices and their ideal distance. The costfunction is minimized, with the ideal distance determined from the graphtheoretical distance among vertices. The stress model achieves moreuniform edge lengths, thus at least minimizing warping effects. However,the calculation of graph theoretical distances among all vertex pairsmakes the computational complexity quadratic in the number of vertices.The robustness and efficiency of this approach may be enhanced by aknown stress majorization technique or by combining it with a knownmultilevel approach. Still, though, the quadratic complexity of thestress model may not be suitable for graphs with more than a fewthousand vertices.

SUMMARY

Exemplary embodiments provide methods, systems, and products forgraphing data. Exemplary embodiments describe a computationallyefficient algorithm that overcomes the warping effects of thespring-electrical model, without destroying the efficiency and goodglobal structure that may be achieved with the spring-electrical model.Exemplary embodiments may utilize the fine control of edge lengthoffered by the stress model, while avoiding its quadratic complexity.Exemplary embodiments achieve computational efficiency by allowing avertex to move within a relative position. Each vertex, in other words,may be confined to a proximity location. This proximity location may becompared to an output of the spring-electrical model. A cost functionmay then be minimized. This technique may constrain the relativepositions of the vertices and may preserve the global structure of thespring-electrical layout.

Exemplary embodiments include a method for graphing data. A layout isretrieved that comprises locations for vertices. A proximity location isgenerated for each vertex. Each vertex's location from the layout ismerged with each vertex's proximity location. A cost function associatedwith the layout is minimized.

More exemplary embodiments include a system for graphing data. Means aredisclosed for retrieving a layout that comprises locations for vertices.Means is included for generating a proximity location for each vertex.Means for merging each vertex's location from the layout with eachvertex's proximity location is included. Means for minimizing a costfunction associated with the layout is included.

Still more exemplary embodiments include a computer readable medium thatstores instructions for performing a method of graphing data. A layoutis retrieved that comprises locations for vertices. A proximity locationis generated for each vertex. Each vertex's location from the layout ismerged with each vertex's proximity location. A cost function associatedwith the layout is minimized.

Other systems, methods, and/or computer program products according tothe exemplary embodiments will be or become apparent to one withordinary skill in the art upon review of the following drawings anddetailed description. It is intended that all such additional systems,methods, and/or computer program products be included within thisdescription, be within the scope of the claims, and be protected by theaccompanying claims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

These and other features, aspects, and advantages of the exemplaryembodiments are better understood when the following DetailedDescription is read with reference to the accompanying drawings,wherein:

FIG. 1 illustrates a conventional, prior art graphical outputillustrating warping effects produced by a multilevel spring-electricalalgorithm with a standard force model;

FIG. 2 is a simplified schematic illustrating an environment in whichexemplary embodiments may be implemented;

FIG. 3 is a schematic illustrating a result of a localized stress model,according to exemplary embodiments;

FIG. 4 is a schematic illustrating a result of a proximity graph-basedmodel, according to exemplary embodiments;

FIG. 5 is a schematic illustrating a proximity graph that applies aDelaunay triangulation to the vertices of FIG. 1, according to exemplaryembodiments;

FIG. 6 is a schematic illustrating a relative neighborhood graph of thevertices of FIG. 1, according to exemplary embodiments;

FIG. 7 is a schematic illustrating another relative neighborhood graphof the vertices of FIG. 1, according to exemplary embodiments;

FIG. 8 is a schematic illustrating another result of a proximitygraph-based model, according to exemplary embodiments;

FIG. 9 is another schematic illustrating graphs, according to exemplaryembodiments;

FIG. 10 is a schematic illustrating another post-processingtransformation, according to exemplary embodiments;

FIGS. 11 and 12 are schematics illustrating more graphs, according toexemplary embodiments;

FIG. 13 is a schematic illustrating a generic block diagramincorporating a post-processing application, according to exemplaryembodiments;

FIG. 14 depicts other possible operating environments for additionalaspects of the exemplary embodiments; and

FIGS. 14 and 15 are flowcharts illustrating a method of graphing data,according to exemplary embodiments.

DETAILED DESCRIPTION

The exemplary embodiments will now be described more fully hereinafterwith reference to the accompanying drawings. The exemplary embodimentsmay, however, be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein. Theseembodiments are provided so that this disclosure will be thorough andcomplete and will fully convey the exemplary embodiments to those ofordinary skill in the art. Moreover, all statements herein recitingembodiments, as well as specific examples thereof, are intended toencompass both structural and functional equivalents thereof.Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture (i.e., any elements developed that perform the same function,regardless of structure).

Thus, for example, it will be appreciated by those of ordinary skill inthe art that the diagrams, schematics, illustrations, and the likerepresent conceptual views or processes illustrating the exemplaryembodiments. The functions of the various elements shown in the figuresmay be provided through the use of dedicated hardware as well ashardware capable of executing associated software. Those of ordinaryskill in the art further understand that the exemplary hardware,software, processes, methods, and/or operating systems described hereinare for illustrative purposes and, thus, are not intended to be limitedto any particular named manufacturer.

As used herein, the singular forms “a,” “an,” and “the” are intended toinclude the plural forms as well, unless expressly stated otherwise. Itwill be further understood that the terms “includes,” “comprises,”“including,” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof. It will be understood thatwhen an element is referred to as being “connected” or “coupled” toanother element, it can be directly connected or coupled to the otherelement or intervening elements may be present. Furthermore, “connected”or “coupled” as used herein may include wirelessly connected or coupled.As used herein, the term “and/or” includes any and all combinations ofone or more of the associated listed items.

It will also be understood that, although the terms first, second, etc.may be used herein to describe various elements, these elements shouldnot be limited by these terms. These terms are only used to distinguishone element from another. For example, a first device could be termed asecond device, and, similarly, a second device could be termed a firstdevice without departing from the teachings of the disclosure.

FIG. 2 is a simplified schematic illustrating an environment in whichexemplary embodiments may be implemented. A device 20 has a processor 22(e.g., “μP”), application specific integrated circuit (ASIC), or othercomponent that executes a post-processing graphing application 24 storedin a memory 26. The post-processing graphing application 24 may causethe processor 22 to produce a graph 28. The graph 28 may be incorporatedinto or produced within a graphical user interface 30. The graph 28and/or the graphical user interface 30 is/are illustrated as beingvisually produced on a display device 32, yet the graph 28 and/or thegraphical user interface 30 may also have audible features. Although thedevice 20 is generically shown, the device 20, as later paragraphs willexplain, may be any processor-controlled device.

The post-processing graphing application 24 accepts a layout 40 as aninput. The layout 40 may be produced from a spring-electrical algorithm42. FIG. 2 illustrates the layout 40 being retrieved from an applicationserver 44. The application server 44 may execute the spring-electricalalgorithm 42 and generate the layout 40. The device 20 then queries theapplication server 44 to retrieve the layout 40. The layout 40communicates via a communications network 50 to the device 20. Thepost-processing graphing application 24 may then cause the processor 22to store the layout 40 in the memory 26. The post-processing graphingapplication 24 may then accept the layout 40 as an input andpost-process the layout 40. As later paragraphs will explain in moredetail, exemplary embodiments may minimize a cost function 52 byimposing an ideal edge length 54 for pairs of vertices. Each vertex maybe confined to a proximity location 56 about a current position 58 (ascalculated by the spring-electrical algorithm 42 from the layout 40).Exemplary embodiments may also determine a penalty parameter 60associated with each vertex for deviating too far from its currentposition 58.

Exemplary embodiments may then generate a proximity graph 70. Thepost-processing graphing application 24 may maintain each vertex'sproximity location 56 by forming a graph edge from neighboring vertexes.The proximity graph 70 may then be merged or combined with the layout 40to form a merged graph 72. The merged graph 72 may include edges fromthe layout 40 and edges from the proximity graph 70. The post-processinggraphing application 24 may then minimize the cost function 52.

The device 20 and the application server 44 are only simply illustrated.Because the architecture and operating principles ofprocessor-controlled devices are well known, their hardware and softwarecomponents are not further shown and described. If the reader desiresmore details, the reader is invited to consult the following sources:ANDREW TANENBAUM, COMPUTER NETWORKS (4^(th) edition 2003); WILLIAMSTALLINGS, COMPUTER ORGANIZATION AND ARCHITECTURE: DESIGNING FORPERFORMANCE (7^(th) Ed., 2005); and DAVID A. PATTERSON & JOHN L.HENNESSY, COMPUTER ORGANIZATION AND DESIGN: THE HARDWARE/SOFTWAREINTERFACE (3^(rd). Edition 2004).

Exemplary embodiments will now be explained in greater detail. Thenotation

G={V,E}

may denote an undirected graph, with V being the set of vertices and Ebeing its edges. |V| and |E| denote the number of vertices and edges,respectively. If vertices i and j form an edge, that edge is denote asi⇄j, and i and j are called neighboring vertices. The notation x_(i)denotes the current coordinates of vertex i in two or three dimensionalEuclidean space. Exemplary embodiments, then, find x_(i) for all iεV sothat the resulting drawing provides a good visual representation of theconnectivity information between vertices.

The layout 40 from the spring-electrical model xx usually is very goodat revealing the global structure of a graph. The layout 40 may thus belocally fine-tuned to reduce warping effects. Exemplary embodiments mayminimize the cost function 52 by imposing the ideal edge length 54. Thecost function may be

Σ_((i,j)εP)(∥x ₁ −x _(j) ∥−d _(ij))²

for pairs of vertices (i, j) in a set P, where is the set of all pairs{(i, j)|≠j, i, jεV}. Here d_(ij) is the ideal distance between verticesi and j. Because the spring electrical model is assumed to have produceda globally good layout, exemplary embodiments may refrain each vertex ifrom deviating too much from its current position, x_(i) ^(o). Exemplaryembodiments may then add a penalty function to this cost function,resulting in the below “cost equation”

${\sum\limits_{{({i,j})} \in P}{w_{ij}\left( {{{x_{i} - x_{j}}} - d_{ij}} \right)}^{2}} + {\sum\limits_{i \in V}{\lambda_{i}{{{x_{i} - x_{i}^{0}}}^{2}.}}}$

Exemplary embodiments hereinafter denote this equation (or graph) as alocalized stress model (or “LSM”). In this model, λ_(i) is a penaltyparameter that specifies the penalty imposed on vertex i for moving awayfrom its current position. If λ_(i)=0, and P is again the set of allpairs {(i,j)|i≠j, i, jεV}, then the penalty function is exactly thestress model. Exemplary embodiments, however, may localize the model byusing a smaller set P. A smaller set P, such as P=E (where E is the setof edges for the undirected graph), may be more efficient. The smallerset P=E, however, may impose a distance requirement on neighboringvertices, so it may not resolve the problem of branches that cling toeach other. On the other hand, a larger set P that includes most of thevertex pairs may result in an overly complex computation. Exemplaryembodiments may thus balance quality with efficiency by setting the setP to be the vertex pairs with a graph theoretical distance of no morethan two (2). If a graph has large 2-neighborhoods (such as a graph thatcontains a large star-like structure), the model still may still have ahigh complexity.

Exemplary embodiments may also determine the ideal distance d_(ij) for apair of vertices. The ideal distance d_(ij), for example, may be set asproportional to the graph theoretical distance (e.g., 1 or 2). Exemplaryembodiments may alternatively set the ideal distance d_(ij) it to berelated to the local average edge length. Repeated observations haveshown that setting the ideal distance d_(ij) to be a power of thecurrent distance

d _(ij) =∥x _(i) ^(o) −x _(j) ^(o)∥^(t), t<1

works well. Exemplary embodiments may scale the above ideal distance tothe proper unit, as later paragraphs will explain.

Repeated observations also suggest that the localized stress modeladequately visualizes mesh-like graphs. On the other hand, for sparsenetworks with many degree-1 nodes, the localized stress model may be tooconservative in expanding the layout to fill up the available whitespace, due to the penalty term. If the penalty is reduced by usingsmaller penalty parameters λ_(i), the final layout may deviate from theinitial layout 40 so significantly that many of the nice features of theinitial layout 40 are lost. The reason may be that the penalty term

λ_(i)∥x_(i)−x_(i) ^(o)∥²

imposes a stringent constraint on the position of the vertex withreference to its current position. A more flexible, yet, adequateconstraint may be to maintain the relative vertex positions. Exemplaryembodiments may thus establish a scaffolding structure. This scaffoldingstructure may allow each vertex to move around (e.g., a vertex'sproximity location 56), yet exemplary embodiments may maintain eachvertex's relative position.

Scaffolding is constructed using the proximity graph 70. The proximitygraph 70 may be derived from a set of points in the space. Points thatare neighbors tend to form an edge in the proximity graph 70. There areseveral methods of creating the proximity graph 70, and exemplaryembodiment may use any of these known methods. Examples will be providedbelow using the following two methods:

-   -   1) The Delaunay triangulation (or “DT”), where two points are        neighbors if and only if there exists a sphere passing through        the two points, and no other points lie in the interior of this        sphere; and    -   2) The relative neighborhood graph (or “RNG”), where two points        x_(i) and x_(j) are neighbors in if and only if no point x_(k)        is both closer to x_(i) than x_(j) and closer to x_(j) than        x_(i). The relative neighborhood graph may thus be a spanning        subgraph of the Delaunay triangulation.        Exemplary embodiments may first form the proximity graph 70        (such as using the Delaunay triangulation and/or the relative        neighborhood graph). The data from the proximity graphs 70 may        then be merged with the layout 40 (from the spring electrical        model 42). This merged data thus forms the new merged graph        (illustrated as reference numeral 72 in FIG. 2)

G′={V,E′},

whose edges may include both the original edges (from the layout 40) andthe edges from the proximity graph 70. Exemplary embodiments mayminimize a cost function

${\sum\limits_{{({i,j})} \in E^{\prime}}{w_{ij}\left( {{{x_{i} - x_{j}}} - d_{ij}} \right)}^{2}},$

with d_(ij) being the ideal distance between vertices i and j (as aboveexplained).

The Delaunay triangulation may be a planar graph. The Delaunaytriangulation may therefore have no more than (3|V|−3) edges. Hence G′may have the same number of vertices, and no more than (3|V|−3) extraedges, compared with the original graph. Furthermore, G′, as a spanningsupergraph of the Delaunay triangulation, is rigid, therefore providinga good scaffolding that constrains the relative positions of thevertices and helps to preserve the good global structure of thespring-electrical layout 40. The proximity graph 70 may thus be denotedas a proximity graph-based model (or “PGM”).

The localized stress model and the proximity graph-based model will nowbe graphically evaluated. The baseline algorithm is a multilevelspring-electrical algorithm, hereafter denoted as Scalable ForceDirected Placement (or “SFDP”). The Scalable Force Directed Placementchecks the input graph, and may automatically switch to an alternativerepulsive force model, which is known to those of ordinary skill in theart as:

${{F_{r}\left( {i,j} \right)} = {\frac{K^{1 - p}}{{{x_{i} - x_{j}}}^{1 + p}}\left( {x_{i} - x_{j}} \right)}},{i \neq {j.}}$

When at least thirty percent (30%) of the nodes are of degree 1, thenp=1.8. Exemplary embodiments used the mesh generator “Triangle” fortriangulation (see Jonathan Richard Shewchuk, Triangle: Engineering a 2DQuality Mesh Generator and Delaunay Triangulator, in APPLIEDCOMPUTATIONAL GEOMETRY: TOWARDS GEOMETRIC ENGINEERING’ (Ming C. Lin andDinesh Manocha, editors), volume 1148 of Lecture Notes in ComputerScience, pages 203-222, Springer-Verlag, Berlin, May 1996). All theresults were generated on a 64-bit LINUX® machine with an INTEL® XEON®3.20 GHz processor and 8 GB of memory, using the GCC (GNU CompilerCollection) compiler, version 3.4.6.

Because both the localized stress model and the proximity graph-basedmodel are very close in form to the stress model, each may be solved byapplying the known stress majorization technique, which has beendemonstrated to be a robust algorithm for finding the minimum of

${\sum\limits_{i \neq j}{w_{ij}\left( {{{x_{i} - x_{j}}} - d_{ij}} \right)}^{2}},$

where d_(ij) is the graph theoretical distance between vertices I and j,and where ω_(ij) is a weight factor (which is typically 1/d_(ij) ²).Consider the cost function of the localized stress model:

${f(x)} = {{{\sum\limits_{{({i,j})} \in P}{w_{ij}\left( {{{x_{i} - x_{j}}} - d_{ij}} \right)}^{2}} + {\sum\limits_{i \in V}{\lambda_{i}{{x_{i} - x_{i}^{o}}}^{2}}}}\mspace{45mu} = {{\sum\limits_{{({i,j})} \in P}\left( {{w_{ij}{{x_{i} - x_{j}}}^{2}} - {2\; d_{ij}w_{ij}{{x_{i} - x_{j}}}} + {w_{ij}d_{ij}^{2}}} \right)} + \mspace{79mu} {\sum\limits_{i \in V}{\lambda_{i}{{x_{i} - x_{i}^{o}}}^{2}}}}}$

All the terms above are either constant, linear, or quadratic withregard to x, except the second term. Using the known Cauchy-Schwartzinequality,

(x _(i) −x _(j))^(T)(y _(i) −y _(j))≦∥x _(i) −x _(j) ∥∥y _(i) −y _(j)∥,

the cost function may be bound by

${{g\left( {x,y} \right)} = {{\sum\limits_{{({i,j})} \in P}\begin{pmatrix}{{w_{ij}{{x_{i} - x_{j}}}^{2}} -} \\{{2\; d_{ij}w_{ij}\frac{\left( {x_{i} - x_{j}} \right)^{T}\left( {y_{i} - y_{j}} \right)}{{y_{i} - y_{j}}}} + {w_{ij}d_{ij}^{2}}}\end{pmatrix}} + {\sum\limits_{i \in V}{\lambda_{i}{{x_{i} - x_{i}^{o}}}^{2}}}}},$

with the bound tight when y=x. The idea of stress majorization is tominimize a sequence of the quadratic function g(x,y^(k)), with y⁰=x⁰ asthe initial layout, and the subsequent y^(k) as the result of minimizingg(x,y^(k−1)), where k=1, 2, . . . .

The minimum of the quadratic function g(x,y) is derived by setting

∂_(x) _(i) g(x,y)=0,

thus giving

(L _(ω)+Λ)x=L _(ω,d) y+Λx ^(C)

(Equation 1), where the weighted Laplacian matrix L_(ω has elements)

$\left( L_{w} \right)_{ij} = \left\{ \begin{matrix}{{\sum\limits_{{({i,l})} \in P}w_{i\; 1}},} & {i = j} \\{{- w_{i,j}},} & {i \neq j}\end{matrix} \right.$

and matrix L_(ω,d) has elements

$\left( L_{w,d} \right)_{ij} = \left\{ \begin{matrix}{{\sum\limits_{{({i,j})} \in P}{w_{i\; 1}{d_{i\; 1}/{{y_{i} - y_{j}}}}}},} & {i = j} \\{{{- w_{ij}}{d_{ij}/{{y_{i} - y_{j}}}}},} & {i \neq j}\end{matrix} \right.$

In equation 1 above, Λ is a diagonal matrix, with the i^(th) diagonalentry λ_(i). Therefore, the problem of finding a minima of g(x,y)becomes that of solving the linear system of equation 1, with the lefthand side matrix fixed and sparse (provided that P is a small subset ofall possible vertex pairs). In fact, when all penalty parameters λ_(i)are positive, then the matrix

L_(ω)+Λ

is diagonally dominant, so an iterative procedure such as the knownpreconditioned conjugate gradient method may converge quickly on thelinear system. Here a diagonal preconditioner is used to terminate theconjugate gradient algorithm if the relative 2-norm residual forequation 1 is less than (0.01). A tighter tolerance is not necessarybecause the solution of equation 1 constitutes an intermediate step ofthe stress majorization. The resulting solution x^(k) is used tosubstitute for the term y in equation 1, and the linear system may againbe solved until

∥x ^(k+1) −x ^(k) ∥/|V|<ε.

These examples used ε=0.001. The proximity graph model may be similarlysolved using the stress majorization procedure, except here P=E′, andterms related to the penalty parameters vanish.

For the localized stress model, the ideal distance may need to besuitably scaled. The scaling factor s is chosen to minimize the initialstress f(x⁰),

$\left( {{\sum\limits_{{({i,j})} \in P}{w_{ij}\left( {{{x_{i}^{0} - x_{j}^{0}}} - {sd}_{ij}} \right)}^{2}} + {\sum{\lambda_{i}{{x_{i}^{0} - x_{i}^{0}}}^{2}}}} \right)_{\vartheta}^{i} = 0$or$s = \frac{\sum\limits_{{({i,j})} \in P}{w_{ij}{{x_{i}^{0} - x_{j}^{0}}}d_{ij}}}{\sum\limits_{{({i,j})} \in P}{w_{ij}d_{ij}^{2}}}$

Different values of t in the ideal distance formula

d _(ij) =∥x _(i) ⁰ −x _(j) ⁰∥^(t)

reveals that t=0.4 works well for the localized stress model.

FIG. 3 is a schematic illustrating a result of the localized stressmodel, according to exemplary embodiments. When the penalty parametersλ_(i) are set equal to (0.05), FIG. 3 illustrates the result of thelocalized stress model on graph qh882. FIG. 3 illustrates that thelocalized stress model improves upon the original drawing (of FIG. 1) byrevealing more details of the graph, such as a ladder structure. At thesame time, FIG. 3 illustrates that the localized stress model does notdeviate very much from the original drawing (of FIG. 1).

FIG. 4 is a schematic illustrating a result of the proximity graph-basedmodel, according to exemplary embodiments. Here the Delaunaytriangulation was used as the proximity graph 70, and the distanceformula

d _(ij) =∥x _(i) ⁰ −x _(j) ⁰|^(0.6)

was used (with 0.6 as the default setting for the proximity graph-basedmodel). When FIGS. 3 and 4 are compared, the result of the proximitygraph-based model utilizes more available space. For example, the branchat a top region is now expanded and can be seen more clearly in FIG. 4.The proximity graph-based model, though, twists some branches which werestraight in the original drawing (e.g., FIG. 1), such as the branch atthe bottom of FIG. 1. The reason is that Delaunay triangulation cancreate edges that link far away vertices together.

FIG. 5 is a schematic illustrating the proximity graph 70 that appliesthe Delaunay triangulation to the vertices of FIG. 1, according toexemplary embodiments. In this Delaunay triangulation there is aparticularly long edge linking the bottom most vertex with one to theleft. In addition there are four long edges that link the bottom branchto a vertex to the right. Because the ideal distance of the proximitygraph-based model was set to be the 0.6 power of the current distance,the bottom branch is pulled to the left and right, which explains thekink of this branch seen in FIG. 4.

FIG. 6 is a schematic illustrating a relative neighborhood graph of thevertices of FIG. 1, according to exemplary embodiments. Experiments wereconducted with a relative neighborhood graph based on the proximitygraph-based model. Here, for computational convenience and efficiency,following the inventor's previously published work, an approximation maybe generated to the relative neighborhood graph by starting from aDelaunay triangulation, and removing Delaunay edges between vertices iand j if there is a vertex k adjacent to i or j, such that

∥x _(i) −x _(j)∥>min{∥x _(i) −x _(k) ∥,∥x _(j) −x _(k)∥}.

Because only neighboring vertices were checked, the result is a supersetof the true relative neighborhood graph. FIG. 6 illustrates thisrelative neighborhood graph for the original layout (of FIG. 1).

FIG. 7 is a schematic illustrating a result of the proximity graph-basedmodel using relative neighborhood graph, according to exemplaryembodiments. While Delaunay triangulation may be rigid, FIG. 6illustrates that the relative neighborhood graph is not. If the readerimagines that edges are rods and that vertices are joints, the topbranch of FIG. 6 is clearly flexible and can swing to the left or right.The consequence of this non-rigidity is that realizable layout thatminimizes the cost function (illustrated as reference numeral 52 in FIG.2 and described by the cost equation of paragraph [0021]) is not unique,and is subject to deformation. For some non-rigid graphs, parts of thelayout after applying relative neighborhood graph based proximitygraph-based model can fold into each other. For graph qh882, however,this proved not to be a real issue and the resulting layout of FIG. 7 isreasonable.

The Delaunay triangulation based proximity graph-based model was appliedto graph dwt_(—)1005 with |V|=1005 and |E|=3808. Because of the manylong edges that exist in Delaunay triangulation, for mesh like graphs,Delaunay triangulation based proximity graph-based model may not besuitable as it tends to destroy the symmetry that exists in the drawingof the spring-electrical model. The relative neighborhood basedproximity graph-based model, though, tends to suffer less from thisproblem.

FIGS. 8-10 are schematics illustrating the post-processingtransformation, according to exemplary embodiments. Here thepost-processing algorithms described above are applied to graphdwt_(—)1005 with |V|=1005 and |E|=3808. FIG. 8 illustrates thepost-processing algorithms applied to the Scalable Force DirectedPlacement. FIG. 9 illustrates the layout after applying the localizedstress model. FIG. 10 illustrates the layout after applying the relativeneighborhood based proximity graph-based model. For sparser graphs,however, the long edges in the Delaunay triangulation proved veryeffective in pulling out branches that cling to each other, thus utilizethe empty space.

FIG. 11 is another schematic illustrating a warping effect suffered byforce directed algorithms, before the post processing algorithm 24 isapplied. FIG. 11A illustrates a result of applying the post-processingtransformation to the baseline spring-electrical algorithm ScalableForce Directed Placement on the known USA.ncol graph with |V|=44954 and|E|=44953. This graph is a spanning tree taken from a web crawl graph.The drawing is pleasing and highlights the tree nature of this graph.However, there are a lot of white spaces that are not utilized. This isa common problem for the spring-electrical model, and is also seen inother implementations. FIG. 11B illustrates the result of applying theknown FM³ algorithm with the default settings. Here the warping effects,with the branches tightly clinging together, is also obvious.

FIG. 12 is a schematic illustrating post-processing transformations,according to exemplary embodiments. FIG. 12A illustrates layouts whenthe localized stress model are applied to the layout illustrated in FIG.11A. One of ordinary skill in the art recognizes that the localizedstress model improves space utilization. For such sparse graphs, it maybe beneficial to augment the original edge set with the Delaunay edges,thus making the graph rigid and enabling the stress function to preserverelative position well. FIG. 12B illustrates this augmentation, which isbased on the proximity graph-based model, and may be superior to FIG.12A.

In terms of computational cost, both the localized stress model and theproximity graph-based model are relatively cheap. Table 1 (below)illustrates various CPU processing times (in seconds) for laying out agraph, along with the post processing time, according to exemplaryembodiments. For graphs that do not contain any large 2-neighborhood(e.g., dwt_(—)1005 and qh882), the localized stress model is fasterbecause the penalty term makes the linear system involved in stressmajorization more strongly diagonally dominant, hence conjugate gradientalgorithm converges in less iterations, and computational cost periteration is also small. However for the USA.ncol graph, the localizedstress model is slower. This is because the graph contains a large starstructure (seen as the dense round clump near the center of FIG. 10A).This makes the 2-neighborhood graph within this structure a completegraph, hence even though conjugate gradient algorithm still converges insmall number of iterations (stress majorization took five (5)iterations, and the average number of iterations for conjugate gradientis seven (7)), the relatively dense matrix makes the computational costhigher compared with proximity graph-based model, whose matrix is almostas sparse as the adjacency matrix of the original graph. For theproximity graph-based model, stress majorization takes nineteen (19)iterations, and on average the conjugate gradient takes 132 iterationsto converge. As a benchmark, in the table is also included the CPU timefor the known FM³ algorithm.

TABLE 1 Comparing the CPU time (in seconds) for the baseline algorithmSFDP, post processing algorithms LSM and Delaunay triangulation basedPGM, as well as the known FM³ algorithm. Graph |V| |E| SFDP LSM PGM FM³USA.ncol 44954 44953 174 57 31 130 dwt_1005 1005 7616 1. 0.05 0.6 1.68qh882 882 3066 0.93 0.03 0.44 1.79

Exemplary embodiments may thus utilize one or more post-processingalgorithms to overcome the warping effects of the spring-electricalmodel. The algorithms explained above are efficiently implemented andproduce aesthetic, accurate drawings for very large graphs.

Exemplary embodiments may be incorporated into any graphing program.There are many graphing applications (such as TOM SAWYER®, YFILES®, andILOG®), and exemplary embodiments may be integrated or incorporated intoany graphing applications. Because graphing applications are well known,no further explanation is needed.

Exemplary embodiments may be applied regardless of networkingenvironment. The communications network 50 (illustrated in FIG. 2) maybe a cable network operating in the radio-frequency domain and/or theInternet Protocol (IP) domain. The communications network 50, however,may also include a distributed computing network, such as the Internet(sometimes alternatively known as the “World Wide Web”), an intranet, alocal-area network (LAN), and/or a wide-area network (WAN). Thecommunications network 50 may include coaxial cables, copper wires,fiber optic lines, and/or hybrid-coaxial lines. The communicationsnetwork 50 may even include wireless portions utilizing any portion ofthe electromagnetic spectrum and any signaling standard (such as theI.E.E.E. 802 family of standards, GSM/CDMA/TDMA or any cellularstandard, and/or the ISM band). The communications network 50 may eveninclude powerline portions, in which signals are communicated viaelectrical wiring. The concepts described herein may be applied to anywireless/wireline communications network, regardless of physicalcomponentry, physical configuration, or communications standard(s).

FIG. 13 is a schematic illustrating still more exemplary embodiments.FIG. 13 is a generic block diagram illustrating the post-processinggraphing application 24 may operate within a processor-controlled device200. The post-processing graphing application 24 may be stored in amemory subsystem of the processor-controlled device 200. One or moreprocessors communicate with the memory subsystem and execute thepost-processing graphing application 24. Because theprocessor-controlled device 200 illustrated in FIG. 13 is well-known tothose of ordinary skill in the art, no detailed explanation is needed.

FIG. 14 depicts other possible operating environments for additionalaspects of the exemplary embodiments. FIG. 14 illustrates that theexemplary embodiments may alternatively or additionally operate withinvarious other devices 300. FIG. 14, for example, illustrates that thepost-processing graphing application 24 may entirely or partiallyoperate within a set-top box (“STB”) (302), a personal/digital videorecorder (PVR/DVR) 304, personal digital assistant (PDA) 306, a GlobalPositioning System (GPS) device 308, an interactive television 310, anInternet Protocol (IP) phone 312, a pager 314, a cellular/satellitephone 316, or any computer system, communications device, orprocessor-controlled device utilizing the processor 22 and/or a digitalsignal processor (DP/DSP) 318. The device 300 may also include watches,radios, vehicle electronics, clocks, printers, gateways,mobile/implantable medical devices, and other apparatuses and systems.Because the architecture and operating principles of the various devices300 are well known, the hardware and software componentry of the variousdevices 300 are not further shown and described. If, however, the readerdesires more details, the reader is invited to consult the followingsources: LAWRENCE HARTE et al., GSM SUPERPHONES (1999); SIEGMUND REDL etal., GSM AND PERSONAL COMMUNICATIONS HANDBOOK (1998); and JOACHIM TISAL,GSM CELLULAR RADIO TELEPHONY (1997); the GSM Standard 2.17, formallyknown Subscriber Identity Modules, Functional Characteristics (GSM 02.17V3.2.0 (1995-01))”; the GSM Standard 11.11, formally known asSpecification of the Subscriber Identity Module—Mobile Equipment(Subscriber Identity Module—ME) interface (GSM11.11 V5.3.0 (1996-07))”;MICHEAL ROBIN & MICHEL POULIN, DIGITAL TELEVISION FUNDAMENTALS (2000);JERRY WHITAKER AND BLAIR BENSON, VIDEO AND TELEVISION ENGINEERING(2003); JERRY WHITAKER, DTV HANDBOOK (2001); JERRY WHITAKER, DTV: THEREVOLUTION IN ELECTRONIC IMAGING (1998); and EDWARD M. SCHWALB, ITVHANDBOOK: TECHNOLOGIES AND STANDARDS (2004).

FIG. 15 is a flowchart illustrating a method of graphing data, accordingto exemplary embodiments. The layout 40 from the spring electricalalgorithm 42 is accessed (Block 400). The proximity graph 70 isgenerated (Block 402). The layout 40 and the proximity graph 70 aremerged to form the merged graph 72 (Block 404). An edge length isimposed for pairs of vertices (Block 406). A cost function is minimized(Block 408).

FIG. 16 is another flowchart illustrating another method of graphingdata, according to exemplary embodiments. The layout 40 is accessed thatcomprises locations for vertices (Block 500). Pairs of vertices areselected having a graph theoretical distance less than or equal to two(2) (Block 502). An edge length for a pair of vertices may be imposed(Block 504). The penalty parameter 60 associated with each vertex isdetermined (Block 506). A cost function 52 associated with the layout 40is minimized (Block 508).

Exemplary embodiments may be physically embodied on or in acomputer-readable storage medium. This computer-readable medium mayinclude CD-ROM, DVD, tape, cassette, floppy disk, memory card, andlarge-capacity disks. This computer-readable medium, or media, could bedistributed to end-subscribers, licensees, and assignees. These types ofcomputer-readable media, and other types not mention here but consideredwithin the scope of the exemplary embodiments. A computer programproduct comprises processor-executable instructions for graphing data.

While the exemplary embodiments have been described with respect tovarious features, aspects, and embodiments, those skilled and unskilledin the art will recognize the exemplary embodiments are not so limited.Other variations, modifications, and alternative embodiments may be madewithout departing from the spirit and scope of the exemplaryembodiments.

1. A method of graphing data, comprising: executing a softwareapplication stored in memory that is executed by a processor; retrievinga layout from the memory that comprises locations for vertices;generating a proximity location by the processor for each vertex;merging each vertex's location from the layout with each vertex'sproximity location; and minimizing a cost function associated with thelayout.
 2. The method according to claim 1, further comprising confininga vertex to its corresponding proximal location about its respectivelocation from the layout.
 3. The method according to claim 1, whereinretrieving the layout comprises retrieving the layout produced by aspring electrical algorithm.
 4. The method according to claim 1, furthercomprising determining a penalty parameter associated with each vertex.5. The method according to claim 1, further comprising imposing apenalty on a vertex for deviating from its corresponding location. 6.The method according to claim 1, further comprising imposing an edgelength for a pair of vertices.
 7. The method according to claim 1,further comprising maintaining each vertex's proximity location.
 8. Themethod according to claim 1, further comprising forming a graph edgefrom neighboring vertexes.
 9. The method according to claim 1, furthercomprising generating a proximity graph.
 10. The method according toclaim 9, further comprising merging an edge from the layout with anotheredge from the proximity graph.
 11. The method according to claim 1,further comprising selecting pairs of vertices with a graph theoreticaldistance less than or equal to two (2).
 12. A system for graphing data,comprising: a processor executing a software application stored inmemory, the software application causing the processor to: retrieve alayout from the memory that comprises locations for vertices; generate aproximity location for each vertex; merge each vertex's location fromthe layout with each vertex's proximity location; and minimize a costfunction associated with the layout.
 13. The system according to claim12, the software application further causing the processor to confine avertex to its corresponding proximal location about its respectivelocation from the layout.
 14. The system according to claim 12, thesoftware application further causing the processor to retrieve thelayout produced by a spring electrical algorithm.
 15. The systemaccording to claim 12, the software application further causing theprocessor to determine a penalty parameter associated with each vertex.16. The system according to claim 12, the software application furthercausing the processor to impose a penalty on a vertex for deviating fromits corresponding location.
 17. The system according to claim 12, thesoftware application further causing the processor to impose an edgelength for a pair of vertices.
 18. The system according to claim 12, thesoftware application further causing the processor to generate aproximity graph.
 19. A computer readable medium storing processorexecutable instructions for performing a method, the method comprising:retrieving a layout from the memory that comprises locations forvertices; generating a proximity location by the processor for eachvertex; merging each vertex's location from the layout with eachvertex's proximity location; and minimizing a cost function associatedwith the layout.
 20. The computer readable medium according to claim 19,further comprising instructions for imposing a penalty on a vertex fordeviating from its corresponding location.